home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / mail / smail-3.1.28 / src / direct.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-07-11  |  2.1 KB  |  59 lines

  1. /* @(#)src/direct.h    1.3 7/11/92 11:48:23 */
  2.  
  3. /*
  4.  *    Copyright (C) 1987, 1988 Ronald S. Karr and Landon Curt Noll
  5.  *    Copyright (C) 1992  Ronald S. Karr
  6.  * 
  7.  * See the file COPYING, distributed with smail, for restriction
  8.  * and warranty information.
  9.  */
  10.  
  11. #ifndef DIRECT_H
  12. #define DIRECT_H
  13.  
  14. /*
  15.  * direct.h:
  16.  *    interface file for direct.c.  Also, types and macros for
  17.  *    use by director drivers.
  18.  */
  19.  
  20. /* structure of a director, as read from the director file */
  21. struct director {
  22.     char *name;                /* name of director */
  23.     char *driver;            /* name of driver */
  24.     struct director *succ;        /* next director in the list */
  25.     long flags;                /* boolean flag values */
  26.     char *owner;            /* string to expand into alias owner */
  27.     char *default_user;            /* default user name for permissions */
  28.     char *default_group;        /* default group name */
  29.     char *default_home;            /* default home directory */
  30.     char *set_user;            /* set user for permissions */
  31.     char *set_group;            /* set group for permissions */
  32.     char *set_home;            /* set home directory */
  33.     char *private;            /* private data storage */
  34.     int default_uid;            /* cache - default uid for perms */
  35.     int default_gid;            /* cache - default gid for perms */
  36.     char *x_default_home;        /* cache - expanded default home */
  37.     int set_uid;            /* cache - set uid for perms */
  38.     int set_gid;            /* cache - set gid for perms */
  39.     char *x_set_home;            /* cache - expanded set home */
  40. };
  41.  
  42. /* compiled in director drivers */
  43. struct direct_driver {
  44.     char *name;                /* name of director driver */
  45.     void (*cache)();            /* function to cache director info */
  46.     struct addr *(*driver)();        /* function to perform directing */
  47.     void (*verify)();            /* function to perform verification */
  48.     void (*finish)();            /* function to free resources */
  49.     char *(*builder)();            /* fun to read from director file */
  50. };
  51.  
  52. /* flags for the director.flags field */
  53. #define CAUTION_DIRECTOR    0x0001    /* secure source of addresses */
  54. #define NOBODY_DIRECTOR        0x0002    /* use "nobody" if unsecure */
  55. #define CACHED_DIRECTOR        0x0004    /* read in cache data */
  56. #define SENDER_OKAY        0x0008    /* assumes me_too operation */
  57.  
  58. #endif    /* DIRECT_H */
  59.